#pragma once

#include "LvWindow.h"
#include "LvDevice.hpp"
#include "LvGameObject.h"
#include "LvRenderer.h"

#include <memory>
#include <vector>



class CubeApp
{
public:
	static constexpr int WIDTH = 800;
	static constexpr int HEIGHT = 600;

	CubeApp();
	~CubeApp();

	CubeApp(const CubeApp&) = delete;
	CubeApp& operator=(const CubeApp&) = delete;

	void run();

private:
	void loadGameObjects();



	LvWindow lvWindow{ WIDTH, HEIGHT, "Hello Vulkan" };
	LvDevice lvDevice{ lvWindow };
	LvRenderer lvRenderer{ lvWindow, lvDevice };

	std::vector<LvGameObject> gameObjects;
};

